import 'package:flutter/material.dart';

/*
Flutter Widget分类：
  组合类：StatefulWidget、StatelessWidget
  代理类：InheritedWidget
  绘制类：RenderObjectWidget,createRenderObject()方法生成RenderObject对象，RenderObject实际负责实际的layout()和paint()

  绘制过程：1.使用layout方法自上而下传递约束，然后自下而上返回测量结果，类似android的measure方法。
  约束Constraints：在Flutter中是一种布局协议,Flutter中有两大布局协议BoxConstraints和SliverConstraints。对于非滑动的控件例如Padding，Flex等一般都使用BoxConstraints盒约束
  盒约束限制子Widget的最大最小宽高，他可以根据最大最小值分为 tight(紧约型)当max和min相等时传给子widget一个确定宽高；loose(松散的) 当max和min不相等时传给子类的约束为一个范围
 */
void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return ConstrainedBox(
      constraints: BoxConstraints(
          minWidth: 70, minHeight: 70, maxWidth: 150, maxHeight: 150),
      child: Container(color: Colors.red, width: 10, height: 10),
    );
  }
}
